const API_URL = 'http://www.esunrising.net:8099/ords/cl/charts/'
const FRONT_URL = 'http://www.esunrising.net:8099/ords/703/r/cl/'
const URL = 'http://www.esunrising.net:8087/'
const login_URL = 'http://www.esunrising.net:8099'

/**
 * 使用ajax GET 提交前端数据
 * @param url 接口路径
 * @param obj 接口所需参数
 * @param isAsync 是否接受异步
 * @param callback 自定义回调函数
 */
function ApiGet(url, obj, callback, isAsync = true) {

    var keys = getObjKeys(obj);
    var values = getObjValues(obj, keys);
    var params = joinStr(keys, values);
    var json = {};

    $.ajax({
        type: "GET", //提交方式
        url: API_URL + url + params, //路径
        async: isAsync,
        success: callback,
        //异常处理
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            console.log(XMLHttpRequest + "---" + textStatus + "---" + errorThrown)
        }
    });

    return json;
}


/**
 * 获取json对象中的所有参数名称
 * @param obj
 * @returns {Array}
 */
function getObjKeys(obj) {
    var params = []; //要提交的参数名称
    for (var p in obj) {
        if (obj.hasOwnProperty(p)) {
            params.push(p);
        }
    }
    return params;
}

/**
 * 获取json对象中的所有value值
 * @param obj
 * @param keys 属性名称数组
 * @returns {Array}
 */
function getObjValues(obj, keys) {
    var values = []; //要提交的参数值
    for (var i = 0; i < keys.length; i++) {
        values.push(obj[keys[i]])
    }
    return values;
}

/**
 * 将两个数组按照search的方式连接起来
 * @param params
 * @param values
 * @param hasParam 是否有参数
 */
function joinStr(params, values, hasParam) {
    var str = "";
    if (hasParam == "" || hasParam == null) {
        str = "?"
    } else {
        str = "&"
    }

    if (params.length != values.length) {
        console.log("拼接url参数时异常，参数之间长度不匹配")
        return null;
    } else {
        for (var i = 0; i < params.length; i++) {
            if (i == (params.length - 1)) {
                str += params[i] + "=" + values[i];
            } else {
                str += params[i] + "=" + values[i] + "&";
            }

        }
    }
    return str;
}

/**
 *  @param val 金额
 *  @return number
 * */
function FormatCash(val) {
    return pricefmt((val / 10000).toFixed(0))
}

/**
 *  @param val 金额
 *  @return number
 * */
function Percent(val) {
    return (val * 100).toFixed(2)
}

// 金额格式化——显示千位分隔符
function pricefmt(num) {
    if (typeof (num) == 'undefiend') return 0;

    let str = num.toString()

    // 没有小数点时，在末尾补上一个小数点
    if (str.indexOf('.') === -1) {
        str += '.'
    }
    return str.replace(/(\d)(?=(\d{3})+\.)/g, '$1,').replace(/\.$/, '')
}

// 登录到后台
function goFront() {
    var pwd = localStorage.getItem('pwdmd5');
    var user = localStorage.getItem('user');

    window.location.href = FRONT_URL + 'login?p9999_is_auto_login=1&p9999_username=' + user + '&p9999_password=' + pwd

}